function showToast(message = '默认提示', duration = 3000) {
    const toast = document.getElementById('toast');
    toast.textContent = message;
    toast.className = 'show';

    setTimeout(() => {
        toast.classList.remove('show');
    }, duration);
}

function createAndShowToast(message = '默认提示', duration = 3000, label = 'div', style = '') {
    // 检查是否已经存在toast元素
    let toastElement = document.getElementById('toast');
    if (!toastElement) {
        // 如果不存在，则创建一个新的toast元素
        toastElement = document.createElement(label);
        toastElement.id = 'toast';
        toastElement.className = 'toast';
        if (style != null && style != '') {
            toastElement.style = style;
        }
        document.body.appendChild(toastElement);
    }

    toastElement.textContent = message;
    toastElement.className = 'toast show';

    setTimeout(() => {
        toastElement.classList.remove('show');
    }, duration);
}

function toggleMask(show, message = "") {
    const maskId = 'mask';
    const maskContentId = 'maskContent';

    if (show) {
        // 如果遮罩层不存在，则创建它
        if (!document.getElementById(maskId)) {
            const mask = document.createElement('div');
            mask.id = maskId;

            const content = document.createElement('div');
            content.id = maskContentId;
            content.textContent = message;

            mask.appendChild(content);
            document.body.appendChild(mask);

            mask.style.display = 'flex';
        } else {
            // 如果遮罩层已经存在，则仅更新内容并显示
            document.getElementById(maskContentId).textContent = message;
            document.getElementById(maskId).style.display = 'flex';
        }
    } else {
        // 隐藏并移除遮罩层
        const mask = document.getElementById(maskId);
        if (mask) {
            mask.style.display = 'none';
            setTimeout(() => {
                document.body.removeChild(mask);
            }, 300); // 延迟移除以允许动画完成（如果有）
        }
    }
}

Vue.directive('autoresize', {
    inserted: function (el) {
        // 创建一个函数用于调整高度
        function adjustHeight() {
            el.style.width = '100%'
            el.style.height = 'auto'; // 先重置高度
            el.style.height = el.scrollHeight + 30 + 'px'; // 根据内容更新高度
        }

        // 监听input事件，当内容改变时调整高度
        el.addEventListener('input', adjustHeight);

        // 初始化时调用一次以设置正确的初始高度
        adjustHeight();
    },
    update: function (el) {
        // 当绑定的数据更新时重新调整高度
        el.style.height = 'auto';
        el.style.height = el.scrollHeight + 'px';
    }
});